package com.rgs.pay.config;

import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;

/**
 * @program: com-rgs-parent
 * @description: 支付宝支付相关配置
 * @author: Mr.Ren
 * @create: 2022-12-02 10:04
 **/
public class AliPayConfig {

    /**
     * 支付宝网关（固定）
     */
    public static final  String URL="https://openapi.alipay.com/gateway.do";

    /**
     * 授权url
     */
    public static final  String ALIPAY_URL = "https://openauth.alipay.com/oauth2/publicAppAuthorize.htm";

    /**
     * 应用id
     */
    public String ALIPAY_APPID;

    /**
     * 应用私钥
     */
    public String APP_PRIVATE_KEY;

    /**
     * 参数返回格式
     */
    public static final  String FORMAT="json";

    /**
     * 编码集
     */
    public static final  String CHARSET="UTF-8";

    /**
     * 支付宝公钥
     */
    public String ALIPAY_PUBLIC_KEY;

    /**
     * 商户生成签名字符串所使用的签名算法类型
     */
    public static final  String SIGNTYPE="RSA2";

    // 服务器异步通知页面路径 需http://或者https://格式的完整路径，不能加?id=123这类自定义参数，必须外网可以正常访问
    public String aliNotifyUrl;
    // 页面跳转同步通知页面路径 需http://或者https://格式的完整路径，不能加?id=123这类自定义参数，必须外网可以正常访问 商户可以自定义同步跳转地址
    public  String aliReturn_url;

    // 统一收单交易创建接口
    private AlipayClient alipayClient = null;

    /**获得初始化的AlipayClient
     * @return 支付宝客户端
     */
    public AlipayClient getAlipayClient() {
        if (alipayClient == null) {
            synchronized (AliPayConfig.class) {
                if (null == alipayClient) {
                    alipayClient = new DefaultAlipayClient(URL, ALIPAY_APPID, APP_PRIVATE_KEY, FORMAT, CHARSET,ALIPAY_PUBLIC_KEY,SIGNTYPE);
                }
            }
        }
        return alipayClient;
    }
}
